package main

import "fmt"

/**
切片指针，切片中存放的都是指针
	切片的指针
*/
func main() {
	//定义切片
	var a []int
	a = []int{1, 2, 3, 4}

	//定义切片指针，这里*是放在[]的前面
	var s *[]int
	s = &a
	fmt.Println(s)       //&[1 2 3 4]
	fmt.Println(*s)      //[1 2 3 4]
	fmt.Println((*s)[0]) //拿出具体的值
	//fmt.Println(s[0])		不支持简化写法

	//修改切片中具体的值,先拿到切片，然后拿到具体的值，然后赋值
	(*s)[0] = 100

	for i := 0; i < len(*s); i++ {
		fmt.Println((*s)[i])
	}

	//这里需要加上*p
	for i, v := range *s {
		fmt.Println(i)
		fmt.Println(v)
	}
}
